perm filename HHT1.FAI[CMS,LCS] blob
sn#333178 filedate 1978-02-07 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00016 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 .INSERT ASMBL.FAI[CMS,LCS]
C00003 00003 Reset
C00005 00004 REFRESH LOOP
C00007 00005 WAIT LOOP AND SETUP
C00010 00006 UPDATE SCREEN
C00012 00007 KB INTERUPT ROUTINE
C00014 00008 RS232 INTERUPT ROUTINE
C00016 00009 FOLLOW CURSOR
C00017 00010 RS232 CONTROL
C00019 00011 SCROLL UP
C00021 00012 CK IF IN WINDOW
C00023 00013 HOME CURSOR
C00025 00014 ASCII TABLE BITS 7 6 5 4 3 2 1 0
C00029 00015 CHRGEN FONT = CAP7X5
C00033 00016 CGEN3: 000 ↔ 000 ↔ 000 ↔ 000 ↔ 000 ↔ 010 ↔ 010 ↔ 000
C00037 ENDMK
C⊗;
.INSERT ASMBL.FAI[CMS,LCS]
CPL ← = 28 ;CHRS PER LINE
NCHRS ← = 112 ;CHRS PER SCREEN
; Zpage ram
COL: 0
CUR: 0
0
WINDOW: 0
0
TMP: 0
0
LINL: 0
CHRL: 0
BRT: 0
NWAIT: 0
UPFLG: 0
CURVIS: 0
DIS: 0
0
SHIFT: 0
BLOCK = 368
; LOC 600
REBUF0: BLOCK = 128 ;REFRESH BUFFER
; LOC 1000
REBUF1: BLOCK = 128
; LOC 1200
REBUF2: BLOCK = 128
; LOC 1400
REBUF3: BLOCK = 128
; LOC 1600
REBUF4: BLOCK = 128
BLOCK = 1024
; LOC 4000
ABUF: 0 ;ASCII CHR BUF
; Reset
; LOC 174000
LOC 174274
RSTA: LDAI 377 ;TURN OFF COLS
STA COLREG
CLD ;CLEAR DECIMAL MODE
LDXI 177 ;STACK DEPTH
TXS ;SETUP STACK
LDAI 4 ;SETUP BRIGHTNESS
STAZ BRT
; SETUP AND CLEAR SCREEN
;CLEAR ABUF, SETUP CURSOR AND WINDOW
SD ← 10 ;START OF ABUF
ED ← 14 ;END OF ABUF
JSR HOME ;SETUP CURSOR
LDAI =16 ;NUMBER OF LINES IN MEM
STAZ TMP
CLRM: JSR LF ;<lf> THEN CLEAR LINE *16
DECZ TMP
BNE CLRM
; INIT I/O
;INIT RS232
SIODEF ← 225 ;UART CONTROL WORD
ACIAC ← 77776 ;UART CONTROL REG ADDRESS
ACIAD ← 77777 ;UART DATA REG ADDRESS
LDAI 3 ;RESET ACIA
STA ACIAC
LDAI SIODEF ;SETUP DEFAULT I/O CONTROL
STA ACIAC
;INIT KB SCANER
KBD ← 23776 ;KEYBOARD DATA REGISTER ADDRESS
KBC ← 23777 ;KEYBOARD CONTROL REGISTER ADDRESS
LDAI 2 ;KB DPY MODE SET
STA KBC
LDAI 60 ;KB CLK DIV
STA KBC
LDAI 302 ;CLEAR KB INTERUPT
STA KBC
LDAI 100 ;READ KB
STA KBC
CLI ;ENABLE INTERUPTS
; REFRESH LOOP
NCHRS ← =112 ;NUMBER OF CHRS ON SCREEN
DPYSR ← 27777 ;DISPLAY SHIFT REGISTER ADDRESS
LDXI NCHRS-1
RELOOP: LDAI 376
STAZ COL ;SETUP COL BIT 1
; CY
SLOOP0: LDAX REBUF0 ;PUT FIRST COL IN SHIFT 4
STA DPYSR ;REGISTER STARTING WITH LAST CHR 4
DEX ; 2
BPL SLOOP0 ; _3_
JSR NXCOL ;TURN ON COL AND WAIT 5+(13*112)=1461
SLOOP1: LDAX REBUF1 ;SECOND
STA DPYSR
DEX
BPL SLOOP1
JSR NXCOL
SLOOP2: LDAX REBUF2 ;THIRD
STA DPYSR
DEX
BPL SLOOP2
JSR NXCOL
SLOOP3: LDAX REBUF3 ;FORTH
STA DPYSR
DEX
BPL SLOOP3
JSR NXCOL
SLOOP4: LDAX REBUF4 ;FIFTH
STA DPYSR
DEX
BPL SLOOP4
JSR NXCOL
JMP RELOOP
; WAIT LOOP AND SETUP
COLREG ← 33777 ;COL ENABLE REGISTER ADDRESS
CPL ← = 28 ;NUMBER OF CHRS PER LINE
SPEED ← = 30 ;SPEED OF SHIFT RIGHT IN ms * 2
; TURN ON COL CY
NXCOL: LDAZ COL ; 3
STA COLREG ;TURN ON COL 4
SEC ; 2
ROLZ COL ;SHIFT FOR NEXT COL 5
; WAIT(BRIGHTNESS) Tcy = 1488 = .9916 ms
LDXZ BRT ; 3
LDAX BTBL ; 4
STAZ NWAIT ; 4
WAIT1: DECZ NWAIT ; 5
BNE WAIT1 ; 3
LDAX OFFTBL ; 4
STAZ NWAIT ; 4
LDXI NCHRS-1 ; 2
; TURN OFF COL
LDAI 377 ; 2
STA COLREG ;TURN OFF COL 4
LDAZ UPFLG ;CK IF UPDATE FLAG SET 3
BNE CKSHFT ; 2
; WAIT(¬BRIGHTNESS)
WAIT2: DECZ NWAIT ; 5
BNE WAIT2 ; 3
RTS ; 6
; BRIGHTNESS TABLES
BTBL: =60 ↔ =80 ↔ =100 ↔ =120 ↔ =140 ↔ =160 ↔ =180 ↔ =200
OFFTBL: =140 ↔ =120 ↔ =100 ↔ =80 ↔ =60 ↔ =40 ↔ =20 ↔ 1
CKSHFT: BPL UPDATE ;CK RIGHT SHIFT FLAG
DECZ SHIFT ;SEE IF TIME TO SHIFT
BNE WAIT2 ;CK UPDATE?
LDAI SPEED
STAZ SHIFT
SEI ;MASK OUT INTERUPTS
LDYZ WINDOW
INY
TYA
ANDI 77
CMPI 45 ;CHECK IF AT LEFT EDGE
BCS EDGE
STYZ WINDOW
JSR CKVIS ;SETUP Y INDEX AND DISTANCE
CLI ;ENABLE INTERUPTS
JMP UPDPY
EDGE: LDAZ UPFLG
ANDI 177 ;TURN OFF RIGHT SHIFT FLAG
STAZ UPFLG
CLI ;ENABLE INTERUPTS
BEQ WAIT2 ;FALL THROUGH TO UPDATE
; UPDATE SCREEN
UPDATE: LDAI 0 ;RESET UDATE FLAG
STAZ UPFLG
UPDPY: LDAZ WINDOW ;COPY WINDOW INTO TEMP
STAZ TMP
LDAZ WINDOW+1
STAZ TMP+1
LDAI 4 ;NUMBER OF LINES PER SCREEN
STAZ LINL
LDYI 0
LLOOP: LDAI CPL ;28 CHRS TO GO
STAZ CHRL
ULOOP: LDXI 0
LDAIX TMP ;WRITE CHRGEN BITS INTO REBUF
JSR WCHR
INY
INCZ TMP
BNE CKCHRL
INCZ TMP+1
LDAZ TMP+1
CMPI ED
BNE CKCHRL
LDAI SD
STAZ TMP+1
CKCHRL: DECZ CHRL
BNE ULOOP ;MORE CHRS LEFT ON LINE
LDAZ TMP
CLC
ADCI 44 ;100-CPL = NEXT LINE
STAZ TMP
BCC NOOF
INCZ TMP+1
LDAZ TMP+1
CMPI ED
BNE NOOF
LDAI SD
STAZ TMP+1
NOOF: DECZ LINL
BNE LLOOP ;DO NEXT LINE
JSR SHOCUR ;SHOW CURSOR IF ON SCREEN
LDXI NCHRS-1 ;SETUP X
RTS
; KB INTERUPT ROUTINE
KBINT: PHA ;SAVE REGS
TXA
PHA
LDX KBD ;GET CHR FROM KB
LDAI 302 ;CLEAR KB INTERUPT
STA KBC
CLI ;CLEAR INTERUPT MASK
OWAIT: LDA ACIAC
ANDI 2 ;CHECK IF FULL
BEQ OWAIT
LDAX CHRTBL ;CONVERT KB TO ASCCI
STA ACIAD ;OUTPUT IT
PLA ;RESTORE REGS
TAX
PLA
RTI ;RETURN
;ERASE CURSOR
CKERA: LDYZ CURVIS
BMI NOS ;CK IF ON SCREEN
LDXI 0
LDAIX CUR
; GEN CHR
WCHR: TAX ;X ← ASCII CHR
LDAX CGEN0 ;FILL REBUF COLS 0-4
STAY REBUF0
LDAX CGEN1
STAY REBUF1
LDAX CGEN2
STAY REBUF2
LDAX CGEN3
STAY REBUF3
LDAX CGEN4
STAY REBUF4
NOS: RTS
; <bspace>
BS: JSR CKERA ;ERASE OLD CURSOR IF ON SCREEN
LDAZ CUR ;DECERMENT CURSOR
BNE NOBACK
DECZ CUR+1
LDAZ CUR+1
CMPI SD-1 ;CK IF BEFORE BEGINING
BNE NOBACK
LDAI ED-1 ;WRAP AROUND
STAZ CUR+1
NOBACK: DECZ CUR
JMP CKCUR ;SHOW CURSOR IF ON SCREEN
; CURSOR OFF LINE
OFFLIN: DECZ CUR ;FIX CUR FOR <cr>
JSR CR ;<cr>
JMP RLF ;<lf>, CK SCROLL AND UPDATE
; RS232 INTERUPT ROUTINE
RSINT: PHA ;SAVE REGS
TXA
PHA
TYA
PHA
LDA ACIAD ;GET CHR FROM ACIA
ANDI 177 ;7 BITS
CMPI 30 ;CONTROL CODES
BCC SCNTRL
CMPI 177 ;<bspace>
BEQ BS
PCHR: LDXI 0
STAIX CUR ;STORE IN ABUF
LDYZ CURVIS ;CK IF IN WINDOW
BMI INCUR
JSR WCHR ;WRITE CHR IN REBUF
INCUR: INCZ CUR ;INCREMENT CURSOR
LDAZ CUR
ANDI 77
BEQ OFFLIN ;BRANCH IF OFF END OF LINE
CKCUR: JSR CKVIS ;SHOW CURSOR IF ON SCREEN
JSR SHOCUR ;WRITE CURSOR INTO REBUF
RSRTRN: PLA ;RESTORE REGS
TAY
PLA
TAX
PLA
RTI ;RETURN
; FOLLOW CURSOR
FOLLOW: LDAZ CURVIS ;CHECK IF CURSOR ON SCREEN
BPL RSRTRN
LDAZ DIS+1
BNE SETW ;CK IF NOT ON PAGE
LDAZ WINDOW
ANDI 77
CLC
ADCZ DIS
BCS SETW
LDAZ WINDOW ;SET WINDOW AT LEFT OF PAGE
ANDI 300
STAZ WINDOW
CKEDGE: LDAZ CUR
ANDI 77
CMPI CPL
BCC OK
SBCI CPL-1
ORAZ WINDOW
STAZ WINDOW
OK: JMP SETFLG
SETW: LDAZ CUR
ANDI 300 ;SET CURSOR AT BOTTOM RIGHT OF WINDOW
SEC
SBCI 300
STAZ WINDOW
LDAZ CUR+1
SBCI 0
CMPI SD-1
BNE NOTB4
LDAI ED-1
NOTB4: STAZ WINDOW+1
BNE CKEDGE ;JUMP
; RS232 CONTROL
SCNTRL: CMPI 26 ;FOLLOW CURSOR
BEQ FOLLOW
CMPI 12 ;<lf>
BEQ RLF
CMPI 15 ;<cr>
BEQ RCR
CMPI 13 ;SCROLL UP
BEQ SCRLU
CMPI 14 ;SCROLL DOWN
BEQ SCRLD
CMPI 22 ;BRIGHTER
BEQ BRIGHT
CMPI 23 ;DIMMER
BEQ DIM
CMPI 20 ;RIGHT
BEQ RIGHT
CMPI 21 ;SET AT LEFT
BEQ LEFT
CMPI 7 ;ERROR
BEQ JRTRN
CMPI 27 ;HOME
BEQ RHOME
JMP PCHR ;PRINT IT ANYWAY
RHOME: JSR HOME
JRTRN: JMP RSRTRN ;SET UPDATE FLAG
; <lf>
RLF: JSR LF ;<lf>
JMP SETFLG ;UPDATE SCREEN
; <cr>
RCR: JSR CKERA ;ERASE OLD CURSOR
JSR CR
JMP CKCUR ;SHOW CURSOR IF ON SCREEN
; SCROLL DOWN
SCRLD: LDAZ WINDOW
CLC
ADCI 100 ;FOR 64 CHRS
STAZ WINDOW
BCC SETFLG
INCZ WINDOW+1
LDAZ WINDOW+1
CMPI ED
BNE SETFLG
LDAI SD
STAZ WINDOW+1
SETFLG: JSR CKVIS
INCZ UPFLG ;UPDATE SCREEN
JMP RSRTRN
; SCROLL UP
SCRLU: LDAZ WINDOW
SEC
SBCI 100 ;64 CHRS PER LINE
STAZ WINDOW
BCS SETFLG
DECZ WINDOW+1
LDAZ WINDOW+1
CMPI SD-1
BNE SETFLG
LDAI ED-1
STAZ WINDOW+1
JMP SETFLG
; BRIGHTER
BRIGHT: LDAZ BRT
CMPI 7 ;BRIGHTEST
BEQ BEST
INCZ BRT
BEST: JMP RSRTRN
; DIMMER
DIM: DECZ BRT
BPL BEST
INCZ BRT ;DIMMEST
JMP RSRTRN
; SET WINDOW AT LEFT OF PAGE
LEFT: LDAZ WINDOW
ANDI 300
STAZ WINDOW
LDAI 1 ;1 FOR NO RIGHT SHIFT AND UPDATE SCREEN
STAZ UPFLG
JMP SETFLG
; WINDOW RIGHT
RIGHT: LDAZ UPFLG
EORI 200 ;TOGGLE RIGHT SHIFT BIT
STAZ UPFLG
LDAI SPEED
STAZ SHIFT
JMP RSRTRN
; CK IF IN WINDOW
CKVIS: LDYI 377 ;SET NO SHOW
LDAZ CUR ;GET DISTANCE
SEC
SBCZ WINDOW
STAZ DIS
LDAZ CUR+1
SBCZ WINDOW+1
BCS CKEQ
ADCI 4 ;IF NEG, ADD BUF LEN
CKEQ: STAZ DIS+1
BNE NOTVIS ;NO SHOW IF ≥ 256
LDAZ DIS
ANDI 77
CMPI CPL ;NO SHOW IF ≥ 28
BCS NOTVIS
STAZ CURVIS
LDAZ DIS ;GET REBUF INDEX
ANDI 300
ROLA
ROLA
ROLA
TAX
LDAX ROWTBL ;NLINES * 28
ADCZ CURVIS
TAY
NOTVIS: STYZ CURVIS
RTS
ROWTBL: 0
CPL
CPL*2
CPL*3
SHOCUR: LDYZ CURVIS
BMI NOSHO
LDAY REBUF0 ;OR CURSOR INTO CHR
ORAI 100
STAY REBUF0
LDAY REBUF1
ORAI 100
STAY REBUF1
LDAY REBUF2
ORAI 100
STAY REBUF2
LDAY REBUF3
ORAI 100
STAY REBUF3
LDAY REBUF4
ORAI 100
STAY REBUF4
NOSHO: RTS
; HOME CURSOR
HOME: LDAI 0 ;CURSOR ← WINDOW ← TOP
STAZ CUR
STAZ WINDOW
STAZ CURVIS
LDAI SD
STAZ CUR+1
STAZ WINDOW+1
STAZ UPFLG ;SET UPDATE FLAG
RTS
; <lf> SUBROUTINE
LF: LDAZ CUR
CLC
ADCI 100 ;CUR ← CUR + 64
STAZ CUR
BCC CTEOL
INCZ CUR+1
LDAZ CUR+1
CMPI ED
BNE CTEOL
LDAI SD ;WRAP AROUND
STAZ CUR+1
; CLEAR TO END OF LINE.
CTEOL: LDAZ CUR
ANDI 77
EORI 77
TAY ;Y ← # CHRS LEFT ON LINE
LDAI 40 ;<space>
CLRL: STAIY CUR ;FILL CURSOR TO CURSOR + CPL
DEY ;WITH SPACES
BPL CLRL
RTS
; <cr> SUBROUTINE
CR: LDAZ CUR ;CUR ← CUR ∧ ¬77
ANDI 300
STAZ CUR
RTS
; ASCII TABLE BITS 7 6 5 4 3 2 1 0
; LOC 176000 CNTL SHFT S2 S1 S0 RL2 RL1 RL0
LOC 176274
CHRTBL:
7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ;CONTROL
7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7
7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7
7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7
7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7
7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7
7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7
7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7
7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ;CNTL SHFT
7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7
7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7
7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7
7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7
7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7
7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7
7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7
13 ↔ 14 ↔ "," ↔ "." ↔ "(" ↔ ")" ↔ 7 ↔ 7 ;SHIFT
20 ↔ 21 ↔ "'" ↔ 42 ↔ "[" ↔ "]" ↔ 7 ↔ 7
22 ↔ 23 ↔ ";" ↔ ":" ↔ "/" ↔ "\" ↔ 7 ↔ 7
24 ↔ 25 ↔ "!" ↔ "?" ↔ "*" ↔ "#" ↔ 7 ↔ 7
26 ↔ 27 ↔ "+" ↔ "-" ↔ "%" ↔ "=" ↔ 7 ↔ 7
7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7
7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7
7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7
"0" ↔ "5" ↔ "A" ↔ "F" ↔ "K" ↔ "P" ↔ "U" ↔ 7
"1" ↔ "6" ↔ "B" ↔ "G" ↔ "L" ↔ "Q" ↔ "V" ↔ "Z"
"2" ↔ "7" ↔ "C" ↔ "H" ↔ "M" ↔ "R" ↔ "W" ↔ 177
"3" ↔ "8" ↔ "D" ↔ "I" ↔ "N" ↔ "S" ↔ "X" ↔ " "
"4" ↔ "9" ↔ "E" ↔ "J" ↔ "O" ↔ "T" ↔ "Y" ↔ 15
7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7
7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7
7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7
; CHRGEN FONT = CAP7X5
; LOC 176400
LOC 176674
CGEN0: 000 ↔ 000 ↔ 000 ↔ 000 ↔ 010 ↔ 010 ↔ 000 ↔ 000
000 ↔ 000 ↔ 000 ↔ 000 ↔ 000 ↔ 000 ↔ 000 ↔ 000
000 ↔ 000 ↔ 000 ↔ 000 ↔ 000 ↔ 010 ↔ 000 ↔ 000
010 ↔ 000 ↔ 010 ↔ 010 ↔ 010 ↔ 000 ↔ 010 ↔ 010
000 ↔ 157 ↔ 003 ↔ 024 ↔ 056 ↔ 043 ↔ 060 ↔ 003
034 ↔ 101 ↔ 052 ↔ 010 ↔ 100 ↔ 010 ↔ 140 ↔ 040
076 ↔ 102 ↔ 102 ↔ 042 ↔ 010 ↔ 057 ↔ 060 ↔ 101
066 ↔ 106 ↔ 146 ↔ 114 ↔ 010 ↔ 024 ↔ 101 ↔ 002
164 ↔ 176 ↔ 177 ↔ 076 ↔ 177 ↔ 177 ↔ 177 ↔ 076
177 ↔ 101 ↔ 040 ↔ 177 ↔ 177 ↔ 177 ↔ 177 ↔ 076
177 ↔ 076 ↔ 177 ↔ 046 ↔ 001 ↔ 077 ↔ 037 ↔ 177
143 ↔ 003 ↔ 141 ↔ 177 ↔ 002 ↔ 101 ↔ 004 ↔ 010
000 ↔ 044 ↔ 177 ↔ 070 ↔ 060 ↔ 070 ↔ 010 ↔ 046
177 ↔ 000 ↔ 040 ↔ 177 ↔ 101 ↔ 174 ↔ 174 ↔ 070
177 ↔ 006 ↔ 174 ↔ 110 ↔ 004 ↔ 074 ↔ 034 ↔ 074
104 ↔ 047 ↔ 104 ↔ 010 ↔ 177 ↔ 000 ↔ 101 ↔ 000
CGEN1: 000 ↔ 000 ↔ 000 ↔ 000 ↔ 010 ↔ 010 ↔ 000 ↔ 000
000 ↔ 000 ↔ 000 ↔ 000 ↔ 000 ↔ 000 ↔ 000 ↔ 000
000 ↔ 000 ↔ 000 ↔ 000 ↔ 000 ↔ 010 ↔ 000 ↔ 000
010 ↔ 000 ↔ 010 ↔ 010 ↔ 010 ↔ 000 ↔ 010 ↔ 010
000 ↔ 157 ↔ 000 ↔ 177 ↔ 111 ↔ 023 ↔ 116 ↔ 000
042 ↔ 042 ↔ 034 ↔ 010 ↔ 040 ↔ 010 ↔ 140 ↔ 020
121 ↔ 177 ↔ 141 ↔ 101 ↔ 014 ↔ 111 ↔ 110 ↔ 041
111 ↔ 051 ↔ 146 ↔ 054 ↔ 024 ↔ 024 ↔ 042 ↔ 001
124 ↔ 011 ↔ 111 ↔ 101 ↔ 101 ↔ 111 ↔ 011 ↔ 101
010 ↔ 177 ↔ 100 ↔ 010 ↔ 100 ↔ 002 ↔ 004 ↔ 101
011 ↔ 101 ↔ 011 ↔ 111 ↔ 001 ↔ 100 ↔ 040 ↔ 040
024 ↔ 004 ↔ 121 ↔ 101 ↔ 004 ↔ 101 ↔ 002 ↔ 034
000 ↔ 124 ↔ 110 ↔ 104 ↔ 110 ↔ 124 ↔ 176 ↔ 111
010 ↔ 000 ↔ 100 ↔ 040 ↔ 177 ↔ 004 ↔ 010 ↔ 104
006 ↔ 011 ↔ 010 ↔ 124 ↔ 004 ↔ 100 ↔ 040 ↔ 100
050 ↔ 110 ↔ 144 ↔ 066 ↔ 000 ↔ 000 ↔ 101 ↔ 000
CGEN2: 000 ↔ 017 ↔ 177 ↔ 170 ↔ 010 ↔ 010 ↔ 010 ↔ 000
000 ↔ 000 ↔ 000 ↔ 000 ↔ 000 ↔ 000 ↔ 000 ↔ 170
000 ↔ 000 ↔ 000 ↔ 000 ↔ 000 ↔ 052 ↔ 000 ↔ 000
170 ↔ 017 ↔ 017 ↔ 170 ↔ 017 ↔ 177 ↔ 177 ↔ 177
000 ↔ 000 ↔ 003 ↔ 024 ↔ 177 ↔ 010 ↔ 121 ↔ 000
101 ↔ 034 ↔ 076 ↔ 076 ↔ 000 ↔ 010 ↔ 000 ↔ 010
111 ↔ 100 ↔ 121 ↔ 101 ↔ 012 ↔ 111 ↔ 114 ↔ 021
111 ↔ 031 ↔ 000 ↔ 000 ↔ 042 ↔ 024 ↔ 024 ↔ 121
164 ↔ 011 ↔ 111 ↔ 101 ↔ 101 ↔ 111 ↔ 011 ↔ 101
010 ↔ 101 ↔ 100 ↔ 024 ↔ 100 ↔ 004 ↔ 010 ↔ 101
011 ↔ 121 ↔ 031 ↔ 111 ↔ 177 ↔ 100 ↔ 100 ↔ 020
010 ↔ 170 ↔ 111 ↔ 101 ↔ 010 ↔ 177 ↔ 177 ↔ 052
000 ↔ 124 ↔ 110 ↔ 104 ↔ 110 ↔ 124 ↔ 011 ↔ 111
010 ↔ 000 ↔ 100 ↔ 020 ↔ 100 ↔ 170 ↔ 004 ↔ 104
011 ↔ 011 ↔ 004 ↔ 124 ↔ 077 ↔ 100 ↔ 100 ↔ 074
020 ↔ 110 ↔ 124 ↔ 101 ↔ 000 ↔ 000 ↔ 076 ↔ 000
CGEN3: 000 ↔ 000 ↔ 000 ↔ 000 ↔ 000 ↔ 010 ↔ 010 ↔ 000
000 ↔ 000 ↔ 000 ↔ 000 ↔ 000 ↔ 000 ↔ 000 ↔ 010
000 ↔ 000 ↔ 000 ↔ 000 ↔ 000 ↔ 010 ↔ 000 ↔ 000
000 ↔ 010 ↔ 000 ↔ 010 ↔ 010 ↔ 010 ↔ 000 ↔ 010
000 ↔ 000 ↔ 000 ↔ 177 ↔ 111 ↔ 144 ↔ 046 ↔ 000
000 ↔ 000 ↔ 034 ↔ 010 ↔ 000 ↔ 010 ↔ 000 ↔ 004
105 ↔ 000 ↔ 111 ↔ 111 ↔ 177 ↔ 111 ↔ 112 ↔ 011
111 ↔ 011 ↔ 000 ↔ 000 ↔ 101 ↔ 024 ↔ 010 ↔ 011
104 ↔ 011 ↔ 111 ↔ 101 ↔ 101 ↔ 111 ↔ 011 ↔ 111
010 ↔ 000 ↔ 100 ↔ 042 ↔ 100 ↔ 002 ↔ 020 ↔ 101
011 ↔ 041 ↔ 051 ↔ 111 ↔ 001 ↔ 100 ↔ 040 ↔ 040
024 ↔ 004 ↔ 105 ↔ 000 ↔ 020 ↔ 000 ↔ 002 ↔ 010
000 ↔ 124 ↔ 110 ↔ 104 ↔ 110 ↔ 124 ↔ 011 ↔ 106
010 ↔ 000 ↔ 075 ↔ 050 ↔ 000 ↔ 004 ↔ 004 ↔ 104
011 ↔ 006 ↔ 004 ↔ 124 ↔ 104 ↔ 100 ↔ 040 ↔ 100
050 ↔ 104 ↔ 114 ↔ 101 ↔ 000 ↔ 000 ↔ 010 ↔ 000
CGEN4: 000 ↔ 000 ↔ 000 ↔ 000 ↔ 000 ↔ 010 ↔ 010 ↔ 000
000 ↔ 000 ↔ 000 ↔ 000 ↔ 000 ↔ 000 ↔ 000 ↔ 010
000 ↔ 000 ↔ 000 ↔ 000 ↔ 000 ↔ 010 ↔ 000 ↔ 000
000 ↔ 010 ↔ 000 ↔ 010 ↔ 010 ↔ 010 ↔ 000 ↔ 010
000 ↔ 000 ↔ 000 ↔ 024 ↔ 062 ↔ 142 ↔ 100 ↔ 000
000 ↔ 000 ↔ 052 ↔ 010 ↔ 000 ↔ 010 ↔ 000 ↔ 002
076 ↔ 000 ↔ 106 ↔ 066 ↔ 010 ↔ 061 ↔ 061 ↔ 007
066 ↔ 006 ↔ 000 ↔ 000 ↔ 000 ↔ 024 ↔ 000 ↔ 006
174 ↔ 176 ↔ 066 ↔ 042 ↔ 076 ↔ 101 ↔ 001 ↔ 072
177 ↔ 000 ↔ 077 ↔ 101 ↔ 100 ↔ 177 ↔ 177 ↔ 076
006 ↔ 136 ↔ 106 ↔ 062 ↔ 001 ↔ 077 ↔ 037 ↔ 177
143 ↔ 003 ↔ 103 ↔ 000 ↔ 040 ↔ 000 ↔ 004 ↔ 010
000 ↔ 170 ↔ 060 ↔ 104 ↔ 177 ↔ 130 ↔ 002 ↔ 077
160 ↔ 000 ↔ 000 ↔ 104 ↔ 064 ↔ 170 ↔ 170 ↔ 070
006 ↔ 177 ↔ 010 ↔ 044 ↔ 104 ↔ 074 ↔ 034 ↔ 074
104 ↔ 077 ↔ 104 ↔ 000 ↔ 000 ↔ 000 ↔ 000 ↔ 000
; INTER VECTS
; LOC 177772
LOC 200266
NMIV: KBINT∧377 ;NMIV: ABSO KBINT
371
RSTV: 0 ;RSTV: ABSO RSTA
370
IRQV: RSINT∧377 ;IRQV: ABSO RSINT
371
END